// 声明该类所在的包名为 com.zhunaer.dao
package com.zhunaer.dao;

// 导入 com.zhunaer.entity 包下的 Room 类，以便在本接口中使用
import com.zhunaer.entity.Room;

import java.util.List;

/**
 * 这是一个 RoomDao 接口，定义了与房间数据操作相关的方法。
 * 该接口中的方法用于对房间数据进行创建、更新、删除和查询等操作。
 */
public interface RoomDao {
    /**
     * 创建一个新的房间记录。
     * @param room 包含房间信息的 Room 对象
     * @return 如果创建成功，返回受影响的行数；否则返回 0
     */
    int createRoom(Room room);

    /**
     * 更新已有的房间记录。
     * @param room 包含要更新的房间信息的 Room 对象
     * @return 如果更新成功，返回受影响的行数；否则返回 0
     */
    int updateRoom(Room room);

    /**
     * 根据房间 ID 删除对应的房间记录。
     * @param roomId 要删除的房间的 ID
     * @return 如果删除成功，返回受影响的行数；否则返回 0
     */
    int deleteRoom(int roomId);

    /**
     * 根据房间 ID 查询对应的房间记录。
     * @param roomId 要查询的房间的 ID
     * @return 如果找到对应的房间记录，返回包含房间信息的 Room 对象；否则返回 null
     */
    Room findRoomById(int roomId);

    /**
     * 根据店铺 ID 查询该店铺下的所有房间记录。
     * @param shopId 店铺的 ID
     * @return 包含该店铺下所有房间信息的 Room 对象列表
     */
    List<Room> findRoomsByShop(int shopId);

    /**
     * 更新指定房间的库存数量。
     * @param roomId 要更新库存的房间的 ID
     * @param quantity 要更新的库存数量
     * @return 如果更新成功，返回受影响的行数；否则返回 0
     */
    int updateStock(int roomId, int quantity);
}